const Redis = require('ioredis');

// 创建Redis连接
const redis = new Redis({
  port: 6379,
  host: '127.0.0.1',
  password: '',
  db: 0
});

// 检查特定批次的数据
async function debugRedisData() {
  try {
    const batchId = 'batch_1763968563435_4r6i70dcf';
    const key = `plugin_data_batch:${batchId}`;
    
    console.log(`检查Redis中的批次数据: ${key}`);
    
    // 获取批次数据
    const data = await redis.get(key);
    
    if (data) {
      console.log('批次数据存在');
      const parsedData = JSON.parse(data);
      console.log('数据类型:', typeof parsedData);
      console.log('数据是否为数组:', Array.isArray(parsedData));
      
      if (Array.isArray(parsedData) && parsedData.length > 0) {
        const firstItem = parsedData[0];
        console.log('第一个数据项的类型:', typeof firstItem);
        console.log('第一个数据项的键:', Object.keys(firstItem));
        
        // 检查response字段
        if (firstItem.response) {
          console.log('\n=== response字段分析 ===');
          console.log('response类型:', typeof firstItem.response);
          console.log('response键:', Object.keys(firstItem.response));
          
          // 检查result字段
          if (firstItem.response.result) {
            console.log('\n=== result字段分析 ===');
            console.log('result类型:', typeof firstItem.response.result);
            console.log('result键:', Object.keys(firstItem.response.result));
            
            // 检查data字段
            if (firstItem.response.result.data) {
              console.log('\n=== result.data字段分析 ===');
              console.log('data类型:', typeof firstItem.response.result.data);
              console.log('data是否为数组:', Array.isArray(firstItem.response.result.data));
              
              if (Array.isArray(firstItem.response.result.data)) {
                console.log('data长度:', firstItem.response.result.data.length);
                
                if (firstItem.response.result.data.length > 0) {
                  const firstOrder = firstItem.response.result.data[0];
                  console.log('\n=== 第一个订单分析 ===');
                  console.log('order类型:', typeof firstOrder);
                  console.log('order键:', Object.keys(firstOrder));
                  
                  if (firstOrder.order) {
                    console.log('\n=== order字段分析 ===');
                    console.log('order类型:', typeof firstOrder.order);
                    // 只显示前10个键以避免输出过长
                    console.log('order前10个键:', Object.keys(firstOrder.order).slice(0, 10));
                  }
                  
                  if (firstOrder.items) {
                    console.log('\n=== items字段分析 ===');
                    console.log('items类型:', typeof firstOrder.items);
                    console.log('items是否为数组:', Array.isArray(firstOrder.items));
                    console.log('items长度:', firstOrder.items.length);
                    
                    if (firstOrder.items.length > 0) {
                      // 只显示前10个键以避免输出过长
                      console.log('第一个订单项的前10个键:', Object.keys(firstOrder.items[0]).slice(0, 10));
                    }
                  }
                }
              }
            }
          }
        } else {
          console.log('第一个数据项没有response字段');
          // 显示所有键以帮助调试
          console.log('第一个数据项的所有键:', Object.keys(firstItem));
        }
      }
    } else {
      console.log('批次数据不存在');
    }
    
    process.exit(0);
  } catch (error) {
    console.error('检查Redis数据时出错:', error);
    process.exit(1);
  }
}

debugRedisData();